4 Category 2-Cells 4.1 Attributes for the Type of 2-Cells 4.1-1 Source Source( c )  attribute Returns: a morphism The argument is a 2-cell c: \alpha \rightarrow \beta. The output is its source \alpha. 4.1-2 Range Range( c )  attribute Returns: a morphism The argument is a 2-cell c: \alpha \rightarrow \beta. The output is its range \beta. 4.1-3 Target Target( c )  attribute Returns: a morphism The argument is a 2-cell c: \alpha \rightarrow \beta. The output is its target \beta. 4.2 Adding 2-Cells to a Category 4.2-1 Add Add( category, twocell )  operation Adds twocell as a 2-cell to category. 4.2-2 AddTwoCell AddTwoCell( category, twocell )  operation Adds twocell as a 2-cell to category. If twocell already lies in the filter IsCapCategoryTwoCell, the operation Add (4.2-1) can be used instead. 4.2-3 CreateCapCategoryTwoCellWithAttributes CreateCapCategoryTwoCellWithAttributes( category, source, range[, attr1, val1, attr2, val2, ...] )  function Returns: a twocell Creates a 2-cell in category with the given attributes. 4.3 Identity 2-Cell and Composition of 2-Cells 4.3-1 IdentityTwoCell IdentityTwoCell( alpha )  attribute Returns: a 2-cell The argument is a morphism \alpha. The output is its identity 2-cell \mathrm{id}_{\alpha}: \alpha \rightarrow \alpha. 4.3-2 HorizontalPreCompose HorizontalPreCompose( c, d )  operation Returns: a 2-cell The arguments are two 2-cells c: \alpha \rightarrow \beta, d: \gamma \rightarrow \delta between morphisms \alpha, \beta: a \rightarrow b and \gamma, \delta: b \rightarrow c. The output is their horizontal composition d \ast c: (\gamma \circ \alpha) \rightarrow (\delta \circ \beta). 4.3-3 HorizontalPostCompose HorizontalPostCompose( d, c )  operation Returns: a 2-cell The arguments are two 2-cells d: \gamma \rightarrow \delta, c: \alpha \rightarrow \beta between morphisms \alpha, \beta: a \rightarrow b and \gamma, \delta: b \rightarrow c. The output is their horizontal composition d \ast c: (\gamma \circ \alpha) \rightarrow (\delta \circ \beta). 4.3-4 VerticalPreCompose VerticalPreCompose( c, d )  operation Returns: a 2-cell The arguments are two 2-cells c: \alpha \rightarrow \beta, d: \beta \rightarrow \gamma between morphisms \alpha, \beta, \gamma: a \rightarrow b. The output is their vertical composition d \circ c: \alpha \rightarrow \gamma. 4.3-5 VerticalPostCompose VerticalPostCompose( d, c )  operation Returns: a 2-cell The arguments are two 2-cells d: \beta \rightarrow \gamma, c: \alpha \rightarrow \beta between morphisms \alpha, \beta, \gamma: a \rightarrow b. The output is their vertical composition d \circ c: \alpha \rightarrow \gamma. 4.4 Well-Definedness for 2-Cells 4.4-1 IsWellDefinedForTwoCells IsWellDefinedForTwoCells( c )  operation Returns: a boolean The argument is a 2-cell c. The output is true if c is well-defined, otherwise the output is false.